/*
 *  Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 *  This source code is licensed under the MIT license found in the LICENSE
 *  file in the root directory of this source tree.
 *
 */

/*
 *  THIS FILE IS AUTOGENERATED. DO NOT MODIFY IT; ALL CHANGES WILL BE LOST IN
 *  VAIN.
 *
 *  @generated
 */
#pragma once

#include <mcrouter/lib/carbon/TypeList.h>
#include <mcrouter/lib/network/CarbonRequestHandler.h>

#include "mcrouter/lib/carbon/example/gen/HelloGoodbyeMessages.h"

namespace hellogoodbye {

namespace detail {

using HelloGoodbyeRequestList = carbon::List<
    GoodbyeRequest,
    HelloRequest,
    facebook::memcache::McExecRequest,
    facebook::memcache::McQuitRequest,
    facebook::memcache::McShutdownRequest,
    facebook::memcache::McStatsRequest,
    facebook::memcache::McVersionRequest>;
} // namespace detail

template <class OnRequest>
class HelloGoodbyeRequestHandler
    : public carbon::
          CarbonRequestHandler<OnRequest, detail::HelloGoodbyeRequestList> {
 public:
  static constexpr const char* name = "HelloGoodbye";

  template <class... Args>
  explicit HelloGoodbyeRequestHandler(Args&&... args)
      : carbon::CarbonRequestHandler<OnRequest, detail::HelloGoodbyeRequestList>(
            std::forward<Args>(args)...) {}
};
} // namespace hellogoodbye
